System and method for coupling a mobile device and point of sale device to transmit mobile shopping cart and provide shopping recommendations

ABSTRACT

Systems and methods are disclosed herein for providing shopping recommendations. Amounts and timing of user purchases are recorded and analyzed to determine consumption rates for various products. A list of recommended products is generated for a user including previous purchases. Expected runout dates for products may be determined based on previous purchases and consumption rates. The list of recommended products may be prioritized based on expected runout dates. A listing of products may be presented with one or both of validation and alternative indicators associated with items of the list. A validation indicator indicates that the product satisfies a criteria and an alternative indicator indicates that an alternative product satisfies the criteria better than the product.

TECHNICAL FIELD

This invention relates to systems and methods for generating shoppinglists for a consumer.

BACKGROUND

A busy shopper may have a large number of items to pick up. Upon arrivalat a point of sale many customers have had the unpleasant experience ofrealizing that a needed item is not in the customer's cart or was notpurchased during a weekly shopping trip. Remedying this situation isinconvenient for all. A cashier may simply wait while the customer goesto retrieve the item. This increases the time the customer requires tocheckout. Other customers in line may become particularly frustrated ifmade to wait. The cashier might simply conclude the transaction for theretrieved items, requiring the customer to retrieve the item and thenwait in line again to purchase the unretrieved item. This createsadditional inconvenience inasmuch as the purchase of previouslypurchased items may need to be verified by the cashier when processingpayment for the previously unretrieved item. A customer may be furtherinconvenienced by arriving home only to realize that a needed item wasnot purchased.

The systems and methods described herein provide an improved approachfor assisting a customer in purchasing needed items.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the invention will be readilyunderstood, a more particular description of the invention will berendered by reference to specific embodiments illustrated in theappended drawings. Understanding that these drawings depict only typicalembodiments of the invention and are not therefore to be consideredlimiting of its scope, the invention will be described and explainedwith additional specificity and detail through use of the accompanyingdrawings, in which:

FIG. 1 is a schematic block diagram of a system suitable for performingmethods in accordance with embodiments of the invention;

FIG. 2 is a block diagram of a computing device suitable forimplementing embodiments of the invention;

FIGS. 3A and 3B are diagrams of interfaces displayable on a usercomputing device and suitable for use in accordance with embodiments ofthe invention;

FIG. 4 is a process flow diagram for characterizing a customer'spurchases in accordance with an embodiment of the present invention;

FIG. 5 is a process flow diagram of a method for providing arecommendation list in accordance with an embodiment of the presentinvention; and

FIG. 6 is a process flow diagram of a method for performing shoppingactivities with respect to a recommendation list in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION

It will be readily understood that the components of the invention, asgenerally described and illustrated in the Figures herein, could bearranged and designed in a wide variety of different configurations.Thus, the following more detailed description of the embodiments of theinvention, as represented in the Figures, is not intended to limit thescope of the invention, as claimed, but is merely representative ofcertain examples of presently contemplated embodiments in accordancewith the invention. The presently described embodiments will be bestunderstood by reference to the drawings, wherein like parts aredesignated by like numerals throughout.

The invention has been developed in response to the present state of theart and, in particular, in response to the problems and needs in the artthat have not yet been fully solved by currently available apparatus andmethods.

Embodiments in accordance with the invention may be embodied as anapparatus, method, or computer program product. Accordingly, theinvention may take the form of an entirely hardware embodiment, anentirely software embodiment (including firmware, resident software,micro-code, etc.), or an embodiment combining software and hardwareaspects that may all generally be referred to herein as a “module” or“system.” Furthermore, the invention may take the form of a computerprogram product embodied in any tangible medium of expression havingcomputer-usable program code embodied in the medium.

Any combination of one or more computer-usable or computer-readablemedia may be utilized. For example, a computer-readable medium mayinclude one or more of a portable computer diskette, a hard disk, arandom access memory (RAM) device, a read-only memory (ROM) device, anerasable programmable read-only memory (EPROM or Flash memory) device, aportable compact disc read-only memory (CDROM), an optical storagedevice, and a magnetic storage device. In selected embodiments, acomputer-readable medium may comprise any non-transitory medium that cancontain, store, communicate, propagate, or transport the program for useby or in connection with the instruction execution system, apparatus, ordevice.

Computer program code for carrying out operations of the invention maybe written in any combination of one or more programming languages,including an object-oriented programming language such as Java,Smalltalk, C++, or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The program code may execute entirely on a computer system asa stand-alone software package, on a stand-alone hardware unit, partlyon a remote computer spaced some distance from the computer, or entirelyon a remote computer or server. In the latter scenario, the remotecomputer may be connected to the computer through any type of network,including a local area network (LAN) or a wide area network (WAN), orthe connection may be made to an external computer (for example, throughthe Internet using an Internet Service Provider).

The embodiments disclosed herein may advantageously be implemented usinga Java language and runtime environment or a Node.js implementation. Inparticular, functionality implemented on a server may be implementingusing one or both of these methods.

The invention is described below with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the invention. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, can be implemented by computerprogram instructions or code. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide processes for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

Embodiments can also be implemented in cloud computing environments. Inthis description and the following claims, “cloud computing” is definedas a model for enabling ubiquitous, convenient, on-demand network accessto a shared pool of configurable computing resources (e.g., networks,servers, storage, applications, and services) that can be rapidlyprovisioned via virtualization and released with minimal managementeffort or service provider interaction, and then scaled accordingly. Acloud model can be composed of various characteristics (e.g., on-demandself-service, broad network access, resource pooling, rapid elasticity,measured service, etc.), service models (e.g., Software as a Service(“SaaS”), Platform as a Service (“PaaS”), Infrastructure as a Service(“IaaS”), and deployment models (e.g., private cloud, community cloud,public cloud, hybrid cloud, etc.).

FIG. 1 illustrates a system 100 in which methods described hereinbelowmay be implemented. The system 100 may include a server system 102 athat may be embodied as one or more server computers each including oneor more processors that are in data communication with one another. Theserver system 102 a may be in data communication with one or morecustomer computers 104 and one or more point of sale (POS) devices 106.In the methods disclosed herein, a customer computer 104 isadvantageously a mobile device such as a mobile phone or tabletcomputer. As known in the art, many mobile phones and tablet computersalso include cameras that can be used to scan optical codes such asbarcodes, two-dimensional bar codes (e.g. quick response (QR) codes), ortextual information. In some embodiments, some or all of the methodsdisclosed herein may be performed using a desktop computer or any othercomputing device as the customer computer 104. For purposes of thisdisclosure, discussion of communication with a user or entity oractivity performed by the user or entity may be interpreted ascommunication with a computer 104 associated with the user or entity oractivity taking place on a computer associated with the user or entity.A POS 106 may be located within a store and may be part of a POSnetwork. In some embodiments, a POS 106 may be operable to processonline transactions. In some embodiments, separate computers of theserver system 102 a may handle communication with the customer computers104 and POS 106.

In some embodiments, a server system 102 a is a global server system 102a owned or controlled by a merchant operating multiple stores, such asover a large geographic area. Individual stores or groups of stores mayhave their own local server systems 102 b that store or access data thatis unique to a particular store or to stores in a particular region. Insuch embodiments, the local server system 102 b may likewise be in datacommunication with the POS 106 associated with the server system 102 b,such as the POS 106 of a store or stores in a region. In someembodiments, the server system 102 b may be in data communication withrepresentative computing device 108 that is carried or otherwiseaccessible by a store representative.

The server system 102 b may communicate with the POS 106 andrepresentative computing device 108 by means of a local network, such asa local wireless or wired network. The server system 102 a may likewisecommunicate with the server 102 b such as by means of a network 110. Thenetwork 110 may be embodied as a peer-to-peer wireless connectionbetween devices, a connection through a local area network (LAN), WiFinetwork, the Internet, or any other communication medium or system. Theuser computing device 104 may likewise communicate with the serversystem 102 a or 102 b by means of the network 110. In some embodiments,the user computing device 104 communicates with one or both of the POS106 and server 102 b by way of the server system 102 a in order toimplement the methods disclosed herein. In other embodiments, the usercomputing device 104 communicates directly with these devices by meansof a network such as a network local to a store or the network 110.

FIG. 2 is a block diagram illustrating an example computing device 200.Computing device 200 may be used to perform various procedures, such asthose discussed herein. A server system 102 a, 102 b, customer device104, POS 106, and representative computing device 108 may include someor all of the attributes of the computing device 200. Computing device200 can function as a server, a client, or any other computing entity.Computing device can perform various monitoring functions as discussedherein, and can execute one or more application programs, such as theapplication programs described herein. Computing device 200 can be anyof a wide variety of computing devices, such as a desktop computer, anotebook computer, a server computer, a handheld computer, tabletcomputer and the like.

Computing device 200 includes one or more processor(s) 202, one or morememory device(s) 204, one or more interface(s) 206, one or more massstorage device(s) 208, one or more Input/Output (I/O) device(s) 210, anda display device 230 all of which are coupled to a bus 212. Processor(s)202 include one or more processors or controllers that executeinstructions stored in memory device(s) 204 and/or mass storagedevice(s) 208. Processor(s) 202 may also include various types ofcomputer-readable media, such as cache memory.

Memory device(s) 204 include various computer-readable media, such asvolatile memory (e.g., random access memory (RAM) 214) and/ornonvolatile memory (e.g., read-only memory (ROM) 216). Memory device(s)204 may also include rewritable ROM, such as Flash memory.

Mass storage device(s) 208 include various computer readable media, suchas magnetic tapes, magnetic disks, optical disks, solid-state memory(e.g., Flash memory), and so forth. As shown in FIG. 2, a particularmass storage device is a hard disk drive 224. Various drives may also beincluded in mass storage device(s) 208 to enable reading from and/orwriting to the various computer readable media. Mass storage device(s)208 include removable media 226 and/or non-removable media.

I/O device(s) 210 include various devices that allow data and/or otherinformation to be input to or retrieved from computing device 200.Example I/O device(s) 210 include cursor control devices, keyboards,keypads, microphones, monitors or other display devices, speakers,printers, network interface cards, modems, lenses, CCDs or other imagecapture devices, and the like.

Display device 230 includes any type of device capable of displayinginformation to one or more users of computing device 200. Examples ofdisplay device 230 include a monitor, display terminal, video projectiondevice, and the like.

Interface(s) 206 include various interfaces that allow computing device200 to interact with other systems, devices, or computing environments.Example interface(s) 206 include any number of different networkinterfaces 220, such as interfaces to local area networks (LANs), widearea networks (WANs), wireless networks, and the Internet. Otherinterface(s) include user interface 218 and peripheral device interface222. The interface(s) 206 may also include one or more user interfaceelements 218. The interface(s) 206 may also include one or moreperipheral interfaces such as interfaces for printers, pointing devices(mice, track pad, etc.), keyboards, and the like.

Bus 212 allows processor(s) 202, memory device(s) 204, interface(s) 206,mass storage device(s) 208, and I/O device(s) 210 to communicate withone another, as well as other devices or components coupled to bus 212.Bus 212 represents one or more of several types of bus structures, suchas a system bus, PCI bus, IEEE 1394 bus, USB bus, and so forth.

For purposes of illustration, programs and other executable programcomponents are shown herein as discrete blocks, although it isunderstood that such programs and components may reside at various timesin different storage components of computing device 200, and areexecuted by processor(s) 202. Alternatively, the systems and proceduresdescribed herein can be implemented in hardware, or a combination ofhardware, software, and/or firmware. For example, one or moreapplication specific integrated circuits (ASICs) can be programmed tocarry out one or more of the systems and procedures described herein.

FIG. 3A illustrates an interface 300 that may be presented on a usercomputing device 104, such as a user computing device 104 embodied as amobile phone or tablet computer. The interface 300 may include aninterface element 302 for receiving search terms and invoking a searchof a product database, such as a product database hosted by a serversystem 102 a, 102 b. An “I need” interface element 304 may invokefunctionality according to the methods described herein for providing arecommendations to a user. A “scan code” interface element 306 mayinvoke an interface and functionality enabling a user to scan a UPC, QR,or other optical code affixed to or otherwise identifying a product. A“favorites” user interface element 308 may list a selection offrequently purchased products or products designated by a customer as afavorite. A “basket history” interface element 310 may invoke display ofitems recently purchased by a customer. In addition to the functionalityrepresented by the interface 300, the methods disclosed herein forproviding recommendations may generate listings of products that may beused by a user to invoke any ecommerce method or provision of enhancedinformation or functionality known in the art with respect to a productin the listing.

FIG. 3B illustrates a recommendation interface 312 that may be displayedin response to user selection of the “I need” interface element 304.Alternatively or additionally, as shown by the “add item” interfaceelement 314, the interface 312 may be displayed in response to userselection of an interface element in any other interface that may beused to add an item to an electronic shopping list, such as a browserfor searching and adding products to a shopping list or electronicshopping cart or other application or interface for viewing or selectingproducts.

The interface 312 may include a listing of products (Item A-Item D)identified and ordered according to the methods described herein. Alisting of products may be too long to display all at the same time.Accordingly, the interface 312 may include interface elements enabling auser to invoke scrolling through the listing of products.

A first portion of the elements of the listing may include validationindicators 316. A second portion of the elements of the listing mayinclude alternative indicators 318. The validation indicators 316indicate that the product marked with a validation indicator 316 is agood choice among possible alternatives based on some criteria, such asprice, nutritional value, calories, or the like. An alternativeindicator 308 may indicate that the product with which it is associatedis not the best choice among possible alternatives based on the same ordifferent criteria. By selecting one of the alternative indicators 318and the element (e.g. “Item C”) with which it is associated, a user mayinvoke display of the better alternatives, which may include acomparison showing the original element as well as one or morealternatives and the values for the one or more criteria.

The recommendation interface 312 may further include interface elements320-326 for invoking one or more other functions to facilitate a user'sshopping. For example, interface element 320 may invoke display of aninterface for displaying and modifying a shopping list. Element 322 mayinvoke display of an interface for displaying and modifying anelectronic shopping cart. Element 324 may invoke display of an interfacefor browsing a product catalog or performing other product related“shopping” activities. Element 326 may invoke display of an interfacefor locating nearby stores.

FIG. 4 illustrates a method 400 for characterizing a customer'stransactions to facilitate processing according to the methods disclosedherein. The method 400 may be executed by a server system 102 a, 102 b.Some or all of the processing for implementing the method 400 may alsobe performed on a user computing device 104. The method 400 may includedetecting 402 customer purchases. Purchases may be reported by a POS 106to a server system 102 a, 102 b. Purchases may be associated with aparticular consumer by the consumer reporting a consumer identifier tothe POS 106 at the time a transaction is concluded. This customeridentifier may be associated with a report of the transaction reportedto the server system 102 a and the server system 102 a may store areport of the transaction, or some or all of the information therein, inassociation with that customer, such as by means of the same or adifferent customer identifier. Alternatively or additionally, reports ofcustomer purchases may be reported by the customer. For example, thecustomer could enter purchases into an interface that submits a reportof such purchases with a customer identifier to the server system 102 a.Alternatively or additionally, reports of the consumer identifier may betransmitted to a POS 106 by a mobile device 104 with contents of anelectronic shopping cart as part of a mobile self checkout routinewhereby the user assembles an electronic shopping cart with items, thedevice 104 is paired with the POS 106, and the device 104 transmits theshopping cart to the POS 106 for concluding the transaction. Thecustomer identifier may be transmitted to the POS 106 for associationwith a transaction as part of other types of transactions.

The method 400 may further include evaluating customer transactions inorder to determine amounts of products purchased and when. Inparticular, product A may be represented among transactions. The usermay have purchases 10 units of product A, then purchase 15 units threeweeks later, and then purchase 5 units five weeks after that. Using thisinformation, the method 400 may include determining 406 a consumptionrate. For example, using the above example, the consumer may bedetermined to consume 10 units of product A every month. In general, aconsumption rate may be determined by the ratio P/W, here P is thenumber of products purchased in a time window and W is the length of thewindow.

The method 400 may further include determining a shopping trip frequencybased on the detected transactions, e.g. the average time elapsedbetween transactions. The method may further include predicting 408 anext shopping trip for the customer based on the shopping tripfrequency. In some embodiments, the methods disclosed herein may beperformed while the customer is in a store or otherwise in the processof going shopping on the day the methods are performed. Accordingly,predicting the next shopping trip may include predicting a next shoppingtrip after the current day on which the methods disclosed herein areexecuted, taking into account that the current day is a shopping trip.Predicting when the next shopping trip will be may include adding theshopping trip period to the current date (e.g. if the frequency is everyN days, add N days to the current date to fine the predicted nextshopping trip).

FIG. 5 illustrates a method 500 for providing product recommendations.The method 500 may be performed using data generated according to themethod 400. The method 500 may include evaluating 502 a customer's mostrecent purchases 502 of a plurality of products and evaluating 504 aconsumption rate of the customer for those products. Based on theevaluations 502, 504, the method 504 may include determining 506 arunout date. For example, where X is the most recently purchased amountof product A and R is a consumption rate (units of product per unittime), the runout date may therefore be A/R after the date of the mostrecent purchase of product A. Other algorithms may also be used.

The method 500 may further include prioritizing 508 products accordingto runout dates. For example, products with the soonest predicted runoutdate may be given higher priority. In some embodiments, prioritizing 508may include filtering products using a predicted date for a nextshopping trip. For example, those products that have runout dates aftera next shopping trip may be omitted. In particular, where the method 400is executed in preparation for a current shopping trip and the predictedshopping trip date is for a next shopping trip subsequent to the currentshopping trip. Products that are rarely purchased or for which nopattern of repeated purchase is found may also be omitted from theprioritizing.

The method 500 may further include identifying valid products from amongthe plurality of products. Valid products may include products that meetone or more criteria, or are better than alternatives with respect tothe one or more criteria. For example, a valid product may be a productthat has the lowest per unit cost than alternative products, e.g., thecheapest per ounce, gram, piece, or the like. Alternatively, a criteriamay relate to quality, such as according to a ranking by a publication,rankings by users who have reviewed the product, or some other metric.In yet another alternative, a score may be assigned to a product basedon a plurality of such criteria (e.g. sum, weighted sum, product,weighted product, or some other combination), and a valid product may beone that has the highest score among a group of alternative products. Insome embodiments, rather than being the highest rated according to acriteria or combination of criteria, a valid product may be one of thetop N products according to a criteria or combination of criteria ormeet a threshold condition with respect to a criteria or combination ofcriteria. Products found to be valid may be marked with a validityindicator 316 as shown in FIG. 3B when a listing of products isdisplayed to a user. Accordingly, a listing transmitted to a user device104 may have an indication of validity associated therewith.

The method 500 may further include identifying 512 alternative products.In particular, where a product is found not to be valid, one or morealternative products may be identified. In some instances, noalternative, or clearly superior alternative, may be found. However, ifa superior alternative exists, such as according to a criteria orcombination of criteria as discussed above, one or more of such superioralternatives may be identified. If an alternative is found for aproduct, then an indication of an alternative may be associated withthat product in a listing of products sent to a user device and used todisplay an alternative indicator 318 with a reference to the at product.The identified one or more alternatives may also be transmitted with thelisting or transmitted in response to a user interaction with thealternative indicator 318 or a representation of the product with whichit is associated. An alternative product may be transmitted as anidentifier for the alternative product as well as values for thecriteria or combination of criteria used to determine that thealternative product is superior.

The method 500 may further include presenting 514 a recommendation listincluding a listing of the products as ordered according to theprioritization as well as any validation or alternative indicators.Presenting the listing may include transmitting sufficient informationto the user device 104 to enable the user device to visually representthe listing and otherwise enable a user to navigate and interact withthe listing, such as discussed above with respect to FIG. 3B.

FIG. 6 illustrates a method 600 for using a listing of products asgenerated according to the method 500 to invoke other functionality tofacilitate shopping by a customer. The method 600 may be executed on aserver system 102 a with an interface provided on a user device 104 andsome or all of the processing may also occur on the user device 104.

The method 600 may include receiving 602 user interaction with an itemof a list displayed on the user device, the list including items thathave been one or more of selected, prioritized, and marked withindicators according to methods disclosed herein.

The method 600 may include presenting 604 one or more alternatives, ifany associated with the selected item. A user may then select one ofthese alternatives to add the alternative to a shopping list, shoppingcart, or otherwise obtain information or begin a process of purchasingor locating the alternative. As noted above, presenting 604 alternativesmay include presenting values for criteria used to select thealternative or that otherwise indicate the superiority of thealternative to an item of the list.

The method 600 may further include adding 606 the list item to ashopping list in response to an instruction from a user received on theuser device. The shopping list may be an electronic shopping list andmay be displayable in an interface for invoking one or more actions withrespect to the shopping list. For example, the method 600 may includeproviding 608 directions to a list item such as by calculating a routethrough a store with respect to a shopping list. The method 600 mayinclude adding 610 the list item to a shopping cart of items to bepurchased. This may include adding 610 the list item to an electronicshopping cart in response to a user scanning a code affixed or otherwiseassociated with an instance of the list item. Adding 610 the item to thelist may also be performed as part of adding an entire shopping list tothe electronic shopping cart in response to an instruction from a user.

The method 600 may further include performing 612 checkout for the listitem using the user computing device. Performing 612 checkout mayinclude performing checkout with respect to an electronic shopping cartincluding the list item. Performing 612 checkout may include performingmobile self checkout in cooperation with a POS 106. For example, a POS106 may receive a request to use mobile self checkout (MSCO). This maybe communicated verbally to a cashier who then inputs or otherwisespecifies the MSCO option to the POS 106. In response to receipt of thisinstruction, the POS 106, may generate and display a code that is usedto couple a particular user computing device 104 to that POS 106. Thedisplayed code may be a one-off code that is generated for eachtransaction or otherwise used for only one transaction.

The user computing device 104 scans the displayed coupling code. Theuser computing device then transmits the contents of the electronic cartto the POS 106 using the coupling code. This coupling code may be anaddress that can be used to transmit the contents of the electronicshopping cart directly to the POS 106. Alternatively, the contents ofthe cart with the coupling code may be transmitted with the couplingcode to a server system 102 a, 102 b. The server system 102 a, 102 b maythen interpret the coupling code to identify the POS 106 that generatedthe coupling code and transmit the contents of the electronic shoppingcart to this POS 106.

The contents of the electronic shopping cart received by the POS 106 amay then be used to conclude 814 the transaction on the POS 106 a. Theitems received by the POS 106 may, for example, may treated in the samemanner as items input to the POS 106 by scanning bar codes in theconventional manner. Likewise, concluding the transaction may includereceiving tender of cash, check, or electronic payment, as for thetypical in-store transaction. Other methods known in the art forconcluding a transaction for an electronic shopping cart input to a usercomputing device 104 may also be performed. Likewise, items may simplybe added to a physical shopping cart. A user may check off items from ashopping list as they are added to the physical shopping cart. Atransaction to purchase the items may be concluded at a POS 106 in theconventional manner.

The invention may be embodied in other specific forms without departingfrom its spirit or essential characteristics. The described embodimentsare to be considered in all respects only as illustrative, and notrestrictive. The scope of the invention is, therefore, indicated by theappended claims, rather than by the foregoing description. All changeswhich come within the meaning and range of equivalency of the claims areto be embraced within their scope.

The invention claimed is:
 1. A system for coupling a user computingdevice to a point of sale device at a store to facilitate providingshopping assistance, the system comprising one or more processors andone or more memory devices operably coupled to the one or moreprocessors, the one or more memory devices storing executable andoperational data effective to cause the one or more processors to:receive, at the point of sale device at the store, a request, from auser computer device that is at least one of a mobile phone or a tablet,to use mobile self-checkout; couple the user computing device that isthe at least one of a mobile phone or a tablet to the point of saledevice at the store by: displaying a coupling code at the point of saledevice for scanning by the user computing device that is the at leastone of a mobile phone or a tablet; transmitting the coupling code andcontents of an electronic shopping cart to a server system associatedwith the store; interpreting, at the server system associated with thestore, the coupling code to identify the point of sale device;transmitting, from the server system to the point of sale device, thecontents of the electronic shopping cart associated with a transaction;and receiving, from the server system, at the point of sale device, thecontents of an the electronic shopping cart; receive a customeridentifier associated with the transaction, from the user computingdevice that is the at least one of a mobile phone and a tablet;conclude, on the point of sale device, the transaction including thecontents of the electronic shopping cart received from the usercomputing device that is the at least one of a mobile phone and a tabletand that is associated with the customer identifier; report thetransaction associated with the customer identifier from the point ofsale device to the server system associated with the store; detecttransactions by a consumer associated with the customer identifier anddetermine, at the server system associated with the store based on thetransactions and the transaction including the contents of theelectronic shopping cart received from the user computing device andthat is associated with the customer identifier, for each product of aplurality of products represented in the transactions, at least one of:amounts of purchases of the each product and timing of the purchases, aconsumption rate for the each product, a runout date for the productaccording to the consumption rate and the amount of a last purchase ofthe purchases of the each product, a shopping trip frequency of theconsumer, an expected date of a next shopping trip of the consumer fromthe shopping trip frequency, and at least a portion of the plurality ofproducts having the runout date prior to the next shopping trip;determine a prioritization of at least a portion of the plurality ofproducts according to the runout dates thereof, and transmit to the usercomputer device that is the at least one of a mobile phone or a tabletassociated with the customer identifier, a listing of the at least theportion of the plurality of products ordered according to theprioritization.
 2. The system of claim 1, wherein the executable andoperational data is further effective to cause the one or moreprocessors to: validate a first portion of the at least the portion ofthe plurality of products; wherein the listing includes validationindicators associated with the first portion in the listing of the atleast the portion of the plurality of products.
 3. The system of claim2, wherein the executable and operational data is further effective tocause the one or more processors to: identify a second portion of the atleast the portion of the plurality of products, each product of thesecond portion having at least one alternative product; wherein thelisting includes alternative indicators associated with the secondportion in the listing of the at least the portion of the plurality ofproducts; and wherein the listing includes associated with each productof the second portion the at least one alternative product associatedtherewith.
 4. The system of claim 3, wherein the at least onealternative product for each product of the second portion has a lowercost than the each product.
 5. The system of claim 3, wherein the deviceassociated with the customer identifier is configured to: receive aninteraction with an alternative indicator of the alternative indicators;and in response to receiving the interaction, display on the user devicea representation of the at least one alternative product associated withthe alternative indicator.
 6. The system of claim 1, wherein theexecutable and operational data are further effective to cause the oneor more processors to: receive user selection of an element of thelisting of the at least the portion of the plurality of productscorresponding to the second portion; and in response to the receivingthe user selection, display a representation of the at least onealternative product corresponding to the element of the listing.
 7. Thesystem of claim 1, wherein the device associated with the customeridentifier is further configured to: receive a user selection of anelement of the listing of the at least the portion of the plurality ofproducts; and in response to receiving the user selection, add a productassociated with the element to an electronic shopping list associatedwith the customer identifier.
 8. The system of claim 7, wherein thedevice associated with the customer identifier is further configured todisplay directions to the product associated with the element.
 9. Thesystem of claim 7, wherein the device associated with the customeridentifier is further configured to: receive an indication of scanning acode associated with the element; in response to the receiving theindication of scanning, add the product associated with the element toan electronic shopping cart; and receive an indication of payment forthe electronic shopping cart.
 10. The system of claim 9, whereinreceiving the indication of payment includes receiving the indication ofpayment from the point of sale device paired with the device associatedwith the customer identifier.
 11. The system of claim 1, wherein theexecutable and operational data is further effective to cause the one ormore processors to Determine, from the transactions by the consumer, theshopping trip frequency of the consumer according to an average timeelapsed between transactions of the customer; and Predict, from theshopping trip frequency, the expected date of the next shopping trip ofthe consumer, by adding the shopping trip frequency to a current date.12. The system of claim 1, further comprising identifying, for the eachproduct, one of more alternative products according to a volume of theeach product purchased by the customer and a price of the one or morealternative products, the one or more alternative products havingcustomer satisfaction rankings meeting a threshold condition.
 13. Amethod for coupling a mobile phone to a point of sale device at a storeto facilitate providing shopping assistance, the method comprising:receiving an indication of an interaction with an item in an electronicshopping list presented on a display of the mobile phone; in response todetermining that the item has been selected, presenting, on the displayof the mobile phone, one or more alternatives associated with theselected item; in response to receiving an instruction from the displayof the mobile phone to add the one or more alternatives to theelectronic shipping shopping list on the mobile phone, adding the one ormore alternatives to the electronic shipping shopping list; receiving arequest from the display of the mobile phone to use mobile self-checkoutwith the mobile phone and the point of sale device to initiate atransaction associated with the one or more alternatives in theelectronic shopping list; coupling the mobile phone to the point of saledevice at the store by: displaying a coupling code at the point of saledevice for scanning by the mobile phone; transmitting the coupling codeto a server system associated with the store; and interpreting, at theserver system associated with the store, the coupling code to identifythe point of sale device; transmitting, from the server system to thepoint of sale device, the one or more alternatives in the electronicshopping list associated with the transaction; generating a customeridentifier associated with the transaction associated with the one ormore alternatives in the electronic shopping list displayed on themobile phone; concluding the transaction associated with the one or morealternatives in the electronic shopping list displayed on the mobilephone via the coupled mobile phone and the point of sale device; andreporting the transaction associated with the customer identifier fromthe point of sale device to the server system associated with the store.